// 获取游戏对象
const gameDom = document.querySelector(".game");

class Bird extends BaseRectangle {

  constructor() {
    // 获取Bird的dom元素
    const birdDom = document.querySelector(".bird");
    const styles = getComputedStyle(birdDom);

    super(parseFloat(styles.width), parseFloat(styles.height), parseFloat(styles.left), parseFloat(styles.top), 0, 0, birdDom);
    this.maxY = gameDom.clientHeight - landDom.clientHeight - this.height;
    // 最大高度 = 游戏屏幕高度 - 地面高度  - 小鸟高度
    this.timer = null;
    // 当前渲染状态
    this.swingStatus = 1;
    this.g = 1500;
    this.render();
  }

  // 重写move
  move(duration) {
    super.move(duration); // 调用父类方法

    // 改变纵向速度
    this.ySpeed += this.g * duration;
  }

  // 控制坐标范围
  onMove() {
    if (this.top < 0) {
      this.top = 0;
    } else if (this.top > this.maxY) {
      this.top = this.maxY;
    }
  }

  // 造作向上
  jump() {
    this.ySpeed = -550;
  }

  // 开始飞行
  startFly() {
    if (this.timer) return;

    this.timer = setInterval(() => {
      this.swingStatus = (this.swingStatus + 1) === 4 ? 1 : (this.swingStatus + 1);
      this.render();
    }, 100);
  }

  // 停止飞行
  stopFly() {
    clearInterval(this.timer);
    this.timer = null;
  }

  // 重写render方法
  render() {
    super.render();
    this.dom.className = `bird swing${this.swingStatus}`;
  }
}